home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO004.dsk / CHANGE.bas < prev    next >
BASIC Source File  |  2012-02-16  |  6KB  |  156 lines

  1. 10  REM  <<  FILE CABINET    >>
  2. 20  REM  <<  CHANGE MODULE   >>
  3. 30  REM  <<  PRODOS VERSION  >>
  4. 40  REM  << MODIFICATION BY  >>
  5. 50  REM  <<  MICHAEL MOORE   >>
  6. 60  REM  <<     MAY 1984     >>
  7. 70 :
  8. 100  GOTO 8010
  9. 2000  REM  << PRINTER SET UP >>>
  10. 2010  PRINT D$"PR#1": PRINT  CHR$(18);: PRINT  CHR$(27) + CHR$(70);
  11. 2020  ON PF GOTO 2030,2050
  12. 2030  PRINT  CHR$(9)"80N";: PRINT  CHR$(27) + CHR$(69): RETURN 
  13. 2050  PRINT  CHR$(9)"132N";: PRINT  CHR$(15);: RETURN 
  14. 2090  REM  << PRINT SET UP >>>
  15. 2100  PRINT :L$ = "PRINT SET-UP CORRECT ": GOSUB 2510: IF YES = 1  THEN  GOTO 2110
  16. 2105  IF YES = 0  THEN  POP : GOTO 28010
  17. 2110  PRINT : INVERSE : PRINT  TAB( 10)"TURN YOUR PRINTER ON" SPC( 10)" ": NORMAL : PRINT 
  18. 2120  INPUT "PRESS <RETURN> WHEN READY...";R$: RETURN 
  19. 2400  REM   <<< INPUT CHOICE >>>
  20. 2410  PRINT L$"->":V =  PEEK(37)::H =  LEN(L$) +3
  21. 2420  VTAB V: HTAB H: CALL  -868: INPUT "";R$:R =  VAL(R$): CALL  -958
  22. 2430  IF R <1  OR R >CHOICE  THEN 2450
  23. 2440  PRINT : RETURN 
  24. 2450  IF V = 23  THEN V = 22
  25. 2460  CALL  -868: PRINT " ENTER NUMBER 1 THRU ";CHOICE: GOTO 2420
  26. 2480  IF SEP = 1  THEN  RETURN 
  27. 2482  HOME : PRINT : PRINT "SPACING FOR PRINTED FORMAT": PRINT 
  28. 2483  PRINT  TAB( 3)"<1> SKIP BLANK LINE BETWEEN RECORDS"
  29. 2484  PRINT  TAB( 3)"<2> RECORDS PRINTED THEN BLANK LINE"
  30. 2485  PRINT  TAB( 3)"<3> RECORDS PRINTED THEN BLANK LINE"
  31. 2486  PRINT  TAB( 3)"<4> RECORDS PRINTED THEN BLANK LINE"
  32. 2487  PRINT  TAB( 3)"<5> RECORDS PRINTED THEN BLANK LINE"
  33. 2489  PRINT : PRINT  TAB( 7)"WHICH ->:";: CALL  -868: INPUT "";LC
  34. 2490  IF LC <1  OR LC >5  THEN  PRINT  CHR$(7) + CHR$(7): GOTO 2480
  35. 2493  IF LC = 1  THEN LT = 30
  36. 2494  IF LC = 2  THEN LT = 40
  37. 2495  IF LC = 3  THEN LT = 45
  38. 2496  IF LC = 4  THEN LT = 48
  39. 2497  IF LC = 5  THEN LT = 50
  40. 2499  RETURN 
  41. 2500  REM  << OBTAIN YES/NO >>
  42. 2510 V =  PEEK(37) +1
  43. 2515  PRINT L$" (Y/N)"
  44. 2520  IF V >23  THEN V = 23
  45. 2530  VTAB V: HTAB ( LEN(L$) +8): CALL  -868: INPUT A$: IF A$ = "Y"  THEN YES = 1: RETURN 
  46. 2540  IF A$ = "N"  THEN YES = 0: RETURN 
  47. 2550  INVERSE : PRINT " PRESS 'Y' OR 'N'...": NORMAL : IF V =  >23  THEN V = 22
  48. 2560  GOTO 2530
  49. 8000  REM  <<< SEARCH DATA >>>>
  50. 8010 L = 0
  51. 8020  GOSUB 21010
  52. 8070  PRINT I" MAKE CHANGES": PRINT I +1" RETURN TO THE MENU."
  53. 8080 V =  PEEK(37) +2
  54. 8090  VTAB V: CALL  -868: INPUT "WHICH ->";S$:S =  VAL(S$)
  55. 8100 X = 0: FOR I = 1 TO NH: IF  LEN(H$(I)) >X  THEN X =  LEN(H$(I))
  56. 8110  NEXT I:X = X +1
  57. 8120  IF S <0  OR S >NH +2  THEN 8090
  58. 8125  ON (S < = NH) GOTO 8140: ON S -NH GOTO 10010,28010
  59. 8140  HOME 
  60. 8150  PRINT "PLEASE ENTER THE "H$(S): PRINT "YOU WANT TO FIND....";: CALL 768,Q$
  61. 8160  HOME : VTAB 3: INVERSE : FLASH : PRINT "PATIENCE";: NORMAL : PRINT " - HAVE "NR" RECORDS TO CHECK...": PRINT 
  62. 8162  FOR W = 1 TO 500: NEXT W: HOME 
  63. 8165  IF PF  THEN  GOSUB 2100: HOME 
  64. 8170  IF PF  THEN  GOSUB 2010
  65. 8180  FOR J = 1 TO NR:Y = R(J)
  66. 8190 N$(Y,0) =  STR$(Y)
  67. 8200  IF  LEN(Q$) >0  THEN 8230
  68. 8210  IF  LEN(N$(Y,S)) = 0  THEN  GOSUB 11010
  69. 8220  GOTO 8240
  70. 8230  IF  LEFT$(N$(Y,S), LEN(Q$)) = Q$  THEN  GOSUB 11010
  71. 8240  IF   NOT PF  AND L +NH >20  THEN  GOSUB 9010
  72. 8250  IF LF  THEN J = NR
  73. 8260  NEXT J
  74. 8270 L = 0: PRINT D$"PR#0"
  75. 8280  IF LF  THEN LF = 0: HOME : GOTO 8300
  76. 8290  PRINT "THAT'S ALL OF THEM. ";
  77. 8300  PRINT "NOW YOU MAY:"
  78. 8310  PRINT "1 DO MORE SEARCHES"
  79. 8320  PRINT "2 MAKE CHANGES"
  80. 8330  PRINT "3 RETURN TO THE MAIN MENU"
  81. 8340  PRINT :L$ = "WHICH ":CHOICE = 3: GOSUB 2410:S = R
  82. 8350  ON S GOTO 8020,10010,28010
  83. 9010  IF (PF)  OR (AR)  THEN 9030
  84. 9020  PRINT "PRESS RETURN TO CONTINUE, ESC TO ABORT";: GOTO 9050
  85. 9030 LF =  PEEK( -16384): POKE  -16368,0
  86. 9040  ON LF = 141 GOTO 9050: ON LF = 155 GOTO 9070: GOTO 9090
  87. 9050 LF =  PEEK( -16384): IF LF <128  THEN 9050
  88. 9060  POKE  -16368,0
  89. 9070  IF LF = 155  THEN LF = 1: GOTO 9100
  90. 9080  IF LF < >141  THEN 9050
  91. 9090 LF = 0
  92. 9100  IF PF = 0  AND AR = 0  THEN  PRINT :L = 0: HOME 
  93. 9110  RETURN 
  94. 10010  HOME : VTAB 5: PRINT "ENTER THE NUMBER OF THE RECORD TO"
  95. 10020 L$ = "CHANGE ":CHOICE = NR: GOSUB 2410:J = R:Y = R(J)
  96. 10030  HOME : GOSUB 11010
  97. 10040  PRINT : PRINT "ENTER THE NUMBER OF THE FIELD YOU WANT"
  98. 10050 L$ = "TO CHANGE ":CHOICE = NH: GOSUB 2410:S = R
  99. 10060  PRINT 
  100. 10070  PRINT "FROM "H$(S)": "N$(Y,S)
  101. 10080  PRINT 
  102. 10090  PRINT  TAB( 3)"TO "H$(S)" :";: CALL 768,N$(Y,S)
  103. 10100  HOME : GOSUB 11010
  104. 10110  PRINT 
  105. 10120 L$ = "MORE CHANGES ": GOSUB 2510: IF YES  THEN  GOTO 10010
  106. 10130 F$ = "INDEX": GOSUB 24010: GOTO 28010
  107. 11010 LT = 60: IF PF  AND L = 0  THEN  PRINT  TAB( 8)DB$" DATA BASE";: POKE 36, LEN(DB$) +20: PRINT TD$: PRINT :L = L +2
  108. 11015  PRINT  TAB( 4 +5 *(PF >1))H$(0);J
  109. 11020  FOR I = 1 TO NH
  110. 11030  POKE 36,5 *(PF >0) +1: PRINT I" "H$(I)":";: POKE 36,X +5 *(PF >0) +5: PRINT N$(Y,I)
  111. 11040  NEXT I
  112. 11050  PRINT 
  113. 11060 L = L +NH +2
  114. 11070  IF PF  AND (L +NH) >(LT -1)  THEN  PRINT  CHR$(12):L = 0
  115. 11080  RETURN 
  116. 21000  REM  <<<SELECT FROM >>>
  117. 21010  HOME : PRINT "SELECT FROM:": PRINT 
  118. 21020  IF MF = 0  THEN  PRINT "0 "H$(0)
  119. 21030  FOR I = 1 TO NH: PRINT I" "H$(I): NEXT I: PRINT 
  120. 21040 MF = 0
  121. 21050  RETURN 
  122. 24010 NR$ =  RIGHT$("00000" + STR$(NR),5)
  123. 24020 FF = 0: IF F$ < >"INDEX"  THEN FF = 1
  124. 24030 Q$ = PB$ +FD$ +"/" +F$
  125. 24040  PRINT D$"OPEN"Q$: PRINT D$"WRITE"Q$
  126. 24050  PRINT NR$
  127. 24060  FOR J = 1 TO NR
  128. 24070  ON FF GOTO 24130
  129. 24080 Y = R(J)
  130. 24090  FOR I = 1 TO NH
  131. 24100  PRINT N$(Y,I)
  132. 24110  NEXT I
  133. 24120  GOTO 24140
  134. 24130  PRINT R$(J)
  135. 24140  NEXT J
  136. 24150  PRINT D$"CLOSE"
  137. 24160 FF = 0
  138. 24170  RETURN 
  139. 28000  REM  << RETURN TO MAIN PROGRAM >>>
  140. 28010  PRINT D$"CHAIN";PX$ +"MAIN"
  141. 61000  REM  *********************
  142. 61010  REM      FILE CABINET
  143. 61020  REM        PRODOS
  144. 61030  REM  ---------------------
  145. 61040  REM     CONVERTED BY
  146. 61050  REM     MICHAEL MOORE
  147. 61060  REM        MAY 1984
  148. 61070  REM  =====================
  149. 61080  REM        BASED ON
  150. 61090  REM   FILE CABINET-MACH 5  
  151. 61100  REM      BY ED AYMOND
  152. 61110  REM    AND BOB MATZINGER   
  153. 61120  REM    AS MODIFICATION
  154. 61130  REM   OF EARLIER VERSIONS
  155. 61140  REM  *********************
  156. 61150  REM  APPLE CORPS OF DALLAS